package cn.lingyangwl.agile.ram;

import java.lang.annotation.*;

/**
 * 个人资源, 建议放在controller 层类上, 因为个人资源, 用户登录之后就会放在登录用户信息缓存中, 如果
 * 个人资源比较多, 是比较占用内存的
 * ram: resource access manager
 * @author shenguangyang
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RamPersonalResource {
    /**
     * 动作-相当于权限值, 格式为 服务code:业务:操作, eg: system:user:query
     */
    String action();

    /**
     * 资源url
     */
    String url();

    /**
     * 动作类型, 个人资源, 统一设置成读操作和写操作 统一为写操作
     */
    ActionType type() default ActionType.WRITE;

    /**
     * 如果不填则和action一样
     */
    String name() default "";
}
